import axios from 'axios'
export default {
    // 开启命名空间
    namespaced: true,
    state () {
        return {
            cartList: []
        }
    },
    mutations: {
        setCartList (state, list) {
            // 传什么数组就给state赋值什么
            state.cartList = list
        },
        // 修改数量的方法
        changeCount (state, obj) {
            // 1. 我们需要知道到底时改哪一条数据 (id)
            // 2. 我们还要知道改成什么样的数量   (count)
            // 所以传递一个对象进来，obj.id代表要修改的数据id，obj.count就代表要修改的数量
            const item = state.cartList.find(v => v.id === obj.id)
            item.count = obj.count
        }
    },
    actions: {
        async reqCartList (ctx) {
            const res = await axios.get('http://localhost:3000/cart')
            ctx.commit('setCartList', res.data)
        },

        async reqCount (ctx, obj) {
            ctx.commit('changeCount', obj)
            // 发请求
            await axios({
                url: `http://localhost:3000/cart/${obj.id}`,
                method: 'patch',
                data: {
                    count: obj.count
                }
            })
        }
    }
}